1. Field of the Invention
The present invention relates generally to the field of computer networking, and in particular to a system in which a network device is configured to automatically recover from a communications disruption during transmission of a data stream.
2. Related Art
According to existing technology used for network data transfers, such as downloading information from the World Wide Web (xe2x80x9cthe Webxe2x80x9d), the typical method for recovering from a communications disruption during a data transfer is to return an error to the end user. At this point the end user has the option of either reconnecting and restarting the download from the beginning, or giving up on the download altogether. Restarting the download has the inherent disadvantage of wasting all of the time previously spent receiving part of the data transfer. This is understandably frustrating to users, especially those with relatively low-speed connections to the Internet such as POTS (Plain Old Telephone System) or cellular connections.
One possible solution to this problem is to use checkpointed data transfers. Checkpointing is a technique used to keep track of data that has been successfully transmitted between two devices. If a failure occurs, the download resumes from the last checkpoint instead of from the beginning. Unfortunately, adding checkpointing functionality to the Internet would require software changes for existing Web browsers and the thousands of existing Web servers. Nevertheless, a protocol called HTTP 1.1, a relatively new version of the HyperText Transfer Protocol widely-used for communicating over the Internet, is a step in this direction. HTTP 1.1 provides a facility whereby a requesting device may designate a portion of a file to be downloaded by a server. In order to use this facility, however, both the source device and the destination device must be pre-configured to communicate with the new protocol.
Accordingly, there is a need for a system which provides the benefits of checkpointed data transfer, but without requiring changes to existing Internet infrastructure.
According to an embodiment of the present invention, a method for recovering from a communications disruption during transmission of a data stream from a source computer to a destination computer includes determining a portion of the data stream that was successfully received by the destination computer. Transmission is then resumed from a point in the data stream immediately after the successfully received portion.